//package test_grpc
//
//import io.grpc.ManagedChannelBuilder
//
//fun main() {
//    val channelA = ManagedChannelBuilder.forAddress("localhost", 50051).usePlaintext().build()
//    val channelB = ManagedChannelBuilder.forAddress("localhost", 50052).usePlaintext().build()
//    val channelC = ManagedChannelBuilder.forAddress("localhost", 50053).usePlaintext().build()
//
//    // A 调用 B
//    val respB = BClient.sayHello(channelB, "A -> B 问好")
//    println("A 调用 B 返回: $respB")
//
//    // B 调用 C
//    val respC = CClient.sayHello(channelC, "B -> C 问好")
//    println("B 调用 C 返回: $respC")
//
//    // C 调用 A
//    val respA = AClient.sayHello(channelA, "C -> A 问好")
//    println("C 调用 A 返回: $respA")
//
//    channelA.shutdown()
//    channelB.shutdown()
//    channelC.shutdown()
//}